package cn.itcast.nems.product.dao.dataobject;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 * 课程价格DO
 * </p>
 *
 * @author zhouwei
 * @since 2023/9/28 3:15 PM
 **/
@Data
@NoArgsConstructor
@ToString
public class ProductPriceDO implements Serializable {
    /**
     * production_price_rule  主键
     */
    private Long id;

    /**
     * 业务关联编号：由业务决定，是业务系统实体关联字段。主租户内必须唯一！
     */
    private String bizNo;

    /**
     * 冗余数据库中原 biz_no 内容
     */
    private String code;

    /**
     * 产品名称
     */
    private String name;

    /**
     * production_price_rule 标准价格：先付费价格。单位：分
     */
    private Integer price;

    /**
     * production_price_rule 后付费价格。单位：分
     */
    private Integer postpaidPrice;

    /**
     * 状态：未上架|PENDING、已上架|VALID、已下架|INVALID
     */
    private String state;

    /**
     * 校区ID：冗余字段，只有短训使用。
     */
    private String campusId;

    /**
     * 授课模式ID：冗余字段，只有短训使用。
     */
    private String modelId;

    /**
     * 学科ID：冗余字段，只有短训使用。
     */
    private String subjectId;

    /**
     * 班级类型名ID：冗余字段，只有短训使用。
     */
    private String classTypeId;

    /**
     * 生效日期，可作为班级的开班日期
     */
    private LocalDate effectiveDatetime;

    /**
     * 过期日期，可作为班级的结课日期
     */
    private LocalDate expireDatetime;
}
